package cn.tedu.io;

import java.io.*;

/**
 * 缓冲流:java.io.BufferedInputStream和java.io.BufferedOutputStream
 *               缓冲字节输入流                  缓冲字节输出流
 *
 * 缓冲流是一对高级流，在流连接中的作用是提高读写效率
 */
public class CopyDemo3 {
    public static void main(String[] args) throws IOException {
        /*
            缓冲流默认的缓冲区(内部维护了一个字节数组)大小为8kb
            其提供的重载构造器可以修改缓冲区大小。

            缓冲流是将读写操作统一转换为块读写来保证读写效率的。
         */
        FileInputStream fis = new FileInputStream("./projcet/Demo/ppt.pptx");
//        BufferedInputStream bis = new BufferedInputStream(fis);
        BufferedInputStream bis = new BufferedInputStream(fis,1024*10);

        FileOutputStream fos = new FileOutputStream("./projcet/Demo/ppt_cp2.pptx");
//        BufferedOutputStream bos = new BufferedOutputStream(fos);
        BufferedOutputStream bos = new BufferedOutputStream(fos,1024*10);

        int d;
        long start = System.currentTimeMillis();
        while( (d = bis.read()) != -1 ) {
            bos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时"+(end-start)+"ms");

        bis.close();
        bos.close();
    }
}


